Traditionally, a computer system includes a central processing unit (CPU); a main storage device; input/output equipment; an input/output device (hereinafter referred to as I/O device) that controls the input/output equipment; and an input/output connection device (hereinafter referred to as I/O connection device) that connects the CPU to the I/O device.
The input/output equipment includes an input device such as a keyboard or a mouse and an output device such as a display, a storage device (such as a hard disk drive (HDD)) or a speaker. In this specification, an interface (such as a network interface or a hard disk controller) that controls the input/output equipment is called an I/O device.
For example, the computer system reads data from the storage device through the I/O connection device and the I/O device according to an instruction operation performed by the CPU. In addition, for example, the computer system writes data in the storage device through the I/O connection device and the I/O device according to an instruction operation performed by the CPU.
In addition, the computer system displays, through the I/O connection device and the I/O device, the results of processing performed by the CPU. The computer system receives entered characters, an instruction operation, a command and the like through the I/O connection device and the I/O device.
A PCI bus through which data is transferred using a parallel bus has been used to transfer data between the I/O connection device and the I/O device. In recent years, however, PCI Express has been used as a communication standard instead of PCI buses.
PCI Express is different from PCI buses. PCI Express packetizes data and transfers through a serial connection. Thus, multiple I/O devices cannot be connected to a single bus, unlike PCI buses. According to PCI Express, a single I/O connection device is connected to a single I/O device.
Therefore, in order to connect a I/O connection device of PCI Express standard to multiple I/O devices, it is necessary to install a switching function in the I/O connection device and form a star-type configuration.
In order to improve reliability of the computer system, it is necessary to reduce the number of abnormalities (such as an erroneous change in data and a failure of a semiconductor) in the I/O devices, the CPU and the storage device. When an abnormality occurs, it is necessary to quickly detect the abnormality and take measures against the abnormality.
Recently, various methods for detecting an abnormality that has occurred in any of the I/O devices have been disclosed. For example, the following methods have been disclosed: a method for passively detecting whether or not the CPU normally accesses the I/O device in order to transfer data; and a method for actively detecting whether or not the CPU normally accesses the I/O device in order to transfer data while using a beacon scheme in which the CPU periodically receives a signal from the I/O device.
In addition, the following method has been disclosed: a method for actively detecting an abnormality of the I/O device under the control of software. Specifically, the CPU accesses the I/O device at constant time intervals specified by the software, and the computer system determines, on the basis of a response to the access, whether or not the I/O device is normal.
In addition, the following method has been disclosed: a method for actively detecting an abnormality of the I/O device under the control of hardware. Specifically, the hardware is connected to the I/O device, a monitoring function is provided in the hardware connected to the I/O device, and the computer system detects an abnormality of the I/O device using the monitoring function.
However, the conventional techniques have a problem that it is not possible to quickly detect an abnormality that has occurred in the I/O device.
For example, in the method for passively detecting an abnormality, the computer system can detect an abnormality only when the CPU accesses the input/output equipment (or the I/O device). Thus, there is the difference between the time at which the abnormality occurs and the time at which the abnormality is detected.
Thus, it is not possible to quickly detect an abnormality that has occurred in the I/O device. In addition, in the method for actively detecting an abnormality using the beacon scheme, the computer system detects an abnormality by confirming whether or not the computer system receives a response. Thus, it is not possible to detect an abnormality that has occurred in the I/O device.
In addition, in the method for detecting an abnormality using the software, when the access from the CPU to the I/O device is not normally terminated, an operation of the CPU may be stopped. For example, when the CPU accesses an abnormal I/O device, an operation of the CPU may be stopped and the CPU may cause the system to shut down. In this case, the computer system cannot quickly detect an abnormality that has occurred in the I/O device.
In the method for detecting an abnormality using the hardware, the computer system needs to have monitoring functions that are dedicated to the I/O devices, respectively.
In addition, since the I/O connection device is connected to multiple I/O devices, it is necessary that the I/O connection device has hardware parts that are dedicated to the I/O devices, respectively.
In this case, it may be difficult to install a hardware part for each of the I/O devices connected to the I/O connection device in the computer system, and it is difficult to say to be able to quickly detect abnormalities that have occurred to the multiple I/O devices.